package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**本类用于进一步测试List接口*/
public class TestList2 {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("喜羊羊");
        list.add("美羊羊");
        list.add("懒羊羊");
        list.add("沸羊羊");
        list.add("慢羊羊");
        list.add("暖羊羊");
        System.out.println(list);
        /**1.for循环
         * 2.高效for循环
         * 3.iterator
         * 4.listIterator*/
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("*************方式一*************");
        for (String s:list){
            System.out.println(s);
        }
        System.out.println("*************方式二**************");
        Iterator<String> it = list.iterator();
        while (it.hasNext()){//判断是否仍有下一个元素迭代
            System.out.println(it.next());
        }
        System.out.println("**************方式三**************");
        /**方式四:listIterator属于List接口特有的迭代器
         * Iterator<E>--父接口--hasNext() next()
         * ListIterator<E>--子接口--除了父接口的功能外
         * 还有自己的特有功能,比如逆序遍历,添加元素等,但是不常用
         * public interface ListIterator<E>extends Iterator<E>*/
        ListIterator<String> it2 = list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println("**************方法四*************");
    }
}
